Aprenda cómo construir un servidor de retransmisión de transacciones con Sequence, permitiendo que su servidor envíe transacciones en nombre de los usuarios de manera fluida.
msg.sender
es una de las direcciones de wallet de Sequence Relayers. Para los contratos estándar de Sequence Builder, esto no es un problema cuando se combina con una solicitud a la Transactions API de relayed transactions.
Configuración del entorno con Express Server
pnpm
(u otro gestor de paquetes de Node) con el siguiente comando:/mint
que puede llamarse desde la CLI para pruebas.Pruebe con este ejemplo de solicitud curl:Gestión de proyecto y clave de acceso
Developer
, lo cual puede hacer siguiendo esta guía.Finalmente, se requiere una Public Access Key
para la Transactions API, que puede obtener siguiendo esta guía.Por último, actualice el archivo .env.example
a .env
con lo siguiente:Despliegue del contrato de coleccionables
.env
con su contrato de coleccionables desplegado:v1
a v2
o de v2
a versiones futuras.La migración es un proceso irreversible; una vez que su wallet es migrada, no puede volver a una versión anterior.Para detectar cualquier migración no deseada, puede usar el callback onMigration
.callContract
, incluya el siguiente código que utiliza un único firmante para retransmitir transacciones:.env
con una clave privada para una wallet que puede generarse desde esta aplicación (solo para fines de demostración). Para producción, recomendamos generar claves privadas de forma segura y local en su computadora usando este script de ejemplo.Luego, actualice la variable PKEY
con la clave:minter permission
a su Sequence Wallet Transactions API Address
.Para hacerlo, abra su proyecto, navegue a la página de Contracts
, seleccione sus Linked contracts
y, en la pestaña Write Contract
, expanda el método grantRole
.Complete con los siguientes datos:bytes32 role
: 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6
address account
: <Generated Sequence Transactions API Wallet Address>
role
ingresado es el resultado de keccak256("MINTER_ROLE")
en solidity o ethers.solidityPackedKeccak256(ethers.toUtf8Bytes("MINTER_ROLE"))
en javascriptEsto hace que solo su dirección específica pueda mintear desde el contrato; de lo contrario, dará error.Complete la actualización del rol haciendo clic en write
y firme la transacción patrocinada.Su aplicación ya está lista para que envíe una transacción de prueba desde el frontend del cliente iniciando sesión en su wallet y haciendo clic en mintear.¡Pruébelo!initWallet